////////////////////////////////////////////////////////////////////////////////
// Filename: PhysicModelInstance.h
////////////////////////////////////////////////////////////////////////////////
#ifndef _PHYSICMODELINSTANCE_H_
#define _PHYSICMODELINSTANCE_H_


//////////////
// INCLUDES //
//////////////
#include <btBulletDynamicsCommon.h>
#include <Windows.h>
#include <xnamath.h>

#include "PhysicShape.h"


class PhysicEntityInstance
{
public:
	PhysicEntityInstance();
	PhysicEntityInstance(const PhysicEntityInstance&);
	PhysicEntityInstance operator=(PhysicEntityInstance const&);
	~PhysicEntityInstance();

	bool Initialize(PhysicShape* pPhysicShape, bool pIsStatic, XMFLOAT3 pPosition, XMFLOAT4 pOrientation, void* entityPointer);
	void Uninit();

	void Update();

	XMFLOAT4X4 GetTransform();
	void ApplyForce(XMFLOAT3 pForce, XMFLOAT3 pPosition);
private:
	PhysicShape* mPhysicShape;
	btRigidBody* mRigidBody;
	bool mIsStatic;
};

#endif
